//测试rb+模式下，可否进行覆盖式修改写入
#include<stdio.h>
#include<assert.h>
#include<string.h>

int main() {
	FILE* fp = fopen("text.txt", "rb+");
	if (!fp) {
		fp = fopen("text.txt", "wb+");
		if (!fp) {
			perror("file open error:");
			assert(1);
		}
	}
	char arr[20] = { 0 };
	scanf("%s", arr);
	fwrite(arr, 1, strlen(arr), fp);
	
	int select;
	printf("请选择是否修改(1:测试修改  else:退出)---->>");
	scanf("%d", &select);
	if (select) {
		fseek(fp, -3, SEEK_CUR);
		char tmp[5] = { 0 };
		printf("请输入测试的覆盖内容>>");
		scanf("%s", tmp);
		fwrite(tmp, 1, strlen(tmp), fp);
		printf("修改成功");		
	}
	else {
		printf("退出\n");
		return 0;
	}
	fclose(fp);
	//修改
	printf("hello!\n");
	return 0;
}

//文件关闭后才会修改文件,即fclose后才会修改
//程序结束后才会将程序写入文件